19. Lesson Conclusion

Lesson Conclusion

ND079 JPND C2 L05 A20 Lesson Conclusion

This lesson introduced you to concurrent programming in Java — and boy was it an introduction! We covered a ton of concepts in this lesson, and they were not easy to grasp.

  • We talked about the ideas of concurrency and parallelism. We talked about the theoretical and practical limitations to concurrency, which can help you decide whether concurrency will be a good option to improve your programs.

  • You also learned about thread pools and why they are a good idea, and you got some practice using them. We also did a little bit of a deeper dive on ForkJoinPools, which are specialized for tasks that create other asynchronous tasks.

  • Finally, you learned why and how to synchronize multi-threaded programs. You learned may different tools in Java that can help you do this, including synchronized collections, the synchronized keyword, specialized lock objects, and semaphores.

Concurrency and parallelism are really difficult topics even for seasoned programmers, so you should be proud of yourself for making it through this lesson. Your knowlege about concurrency and synchronization will serve you well in all programming languages, not just Java!